When rendering a layout of objects on a display device (e.g., a computer screen), various geometric transforms may be applied to the objects in the layout. In general, objects (images, paths, surfaces, etc.) are first defined, then one or more transforms are applied. The transformed objects are grouped with other graphic objects to which other transforms may have been applied, and additional transforms may be applied to the group. Additional layers of grouping and transforming may be applied.
However, in some situations, one will not want to perform certain transformations on certain objects. To solve this issue currently, each object in a user interface is transformed separately. However, this is an inefficient solution, as it requires many of the same transforms to be applied to a large number of objects repeatedly. Furthermore, it prevents graphic objects from being easily grouped into reusable packages with a structure that may be opaque to a later software developer, because the software developer may want transformation to affect the different graphic objects differently.